1
การควบคุมการไหลขั้นสูงอย่างคล่องตัว
AI019Lesson 6
00:00

คำว่า case การแสดงออกของคำว่า 'case' เป็นหัวใจสำคัญของการควบคุมการไหลในเอลิกซีร์ แตกต่างจากคำสั่งแบบบังคับทั่วไป เช่น คำสั่ง 'switch' case เป็นการแสดงผลเชิงฟังก์ชันที่ส่งกลับผลลัพธ์ของสาขาที่ตรงกัน ทำให้นักพัฒนาสามารถแยกโครงสร้างข้อมูลซับซ้อน เช่น แผนที่ (maps) และคู่ (tuples) ได้ทันที โดยยังคงรักษาตรรกะที่ครอบคลุมทุกกรณีไว้

1. การจับคู่รูปแบบและการผูกตัวแปร

คำว่า case การแสดงออกช่วยให้คุณทดสอบค่าหนึ่งกับชุดรูปแบบต่างๆ มันจะดำเนินการโค้ดที่เกี่ยวข้องกับ รูปแบบแรกที่ตรงกัน และส่งคืนค่าของโค้ดนั้น คุณสามารถผูกตัวแปรภายในรูปแบบเพื่อนำไปใช้ทันทีในตรรกะของสาขาได้

case dave do
%{state: some_state} = person ->
IO.puts "#{person.name} อาศัยอยู่ที่ #{some_state}"
end

2. ลำดับตรรกะเชิงภาพ

ค่ารูปแบบ {:ok, val}รูปแบบ {:error, _}ค่าเริ่มต้น _

3. ข้อจำกัดและตรรกะที่ครอบคลุมทุกกรณี

โดยใช้คำว่า when คำสำคัญ คุณสามารถเสริมการจับคู่โครงสร้างด้วยตรรกะเชิงเงื่อนไข (เช่น is_number(age) และ age >= 21) เอลิกซีร์ต้องการให้มีการจับคู่สำหรับทุกค่าที่เป็นไปได้ หากไม่มีรูปแบบใดตรงเลย จะเกิด CaseClauseError ขึ้น

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>